package exercise;

import java.util.ArrayList;
import java.util.stream.Stream;

/**
 * @ClassName Test
 * @Description TODO
 * @Author Li
 * @Date 2022/8/14 17:49
 * @ModifyDate 2022/8/14 17:49
 * @Version 1.0
 */
public class Test {
    public static void main(String[] args) {
        //第一支队伍
        ArrayList<String> one = new ArrayList<>();
        one.add("老子");
        one.add("宋远桥");
        one.add("庄子");
        one.add("苏星河");
        one.add("洪七公");
        one.add("石破天");
        one.add("黄老邪");
        one.add("石中玉");
        //第二支队伍
        ArrayList<String> two = new ArrayList<>();
        two.add("张三");
        two.add("张无忌");
        two.add("赵丽颖");
        two.add("赵四");
        two.add("张三丰");
        two.add("张天爱");
        two.add("张二狗");

        /*
        1. 第一个队伍只要名字为3个字的成员姓名
        2. 第一个队伍筛选之后只要前3个人
         */
        Stream<String> limit = one.stream().filter(s -> s.length() == 3)
                .limit(3);
        /*
        3. 第二个队伍只要姓张的成员姓名
        4. 第二个队伍筛选之后不要前2个人
         */
        Stream<String> skip = two.stream().filter(s -> s.startsWith("张"))
                .skip(2);
        /*
        5. 将两个队伍合并为一个队伍
        6. 根据姓名创建 Person 对象
        7. 打印整个队伍的Person对象信息
         */
        Stream.concat(limit, skip).map(s -> new Person(s))
                .forEach(p -> System.out.println(p));

    }
}
